Aerial display morphing

ABSTRACT

Disclosed herein are systems and methods for generating a morphing sequence for an aerial show. The systems and methods may include: receiving, at a computing device comprising a processor, first frame data defining a first location for each of a plurality of drones in a first image of the aerial show; receiving, at the computing device, second frame data defining a second location for each of the plurality of drones in a second image of the aerial show; and generating the morphing sequence, the morphing sequence defining a flightpath for each of the plurality of drones to transition from the first location associated with the first image to the second location associated with the second image.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/721,137, filed Sep. 29, 2017, which is related to and claims priorityto U.S. Provisional Application No. 62/421,372 filed on Nov. 13, 2016,the content of each of which is hereby incorporated in its entirety.

TECHNICAL FIELD

Embodiments described generally herein relate to drones. Someembodiments relate to morphing an aerial display from a first frame to asecond frame.

BACKGROUND

An unmanned aerial vehicle (UAV), commonly known as a drone, is anaircraft without a human pilot aboard. The size of drones may range fromsmall hobby scale suitable for close range operation proximate to a userto large scale systems capable of hauling large payloads over manymiles. Drones may be used to provide services, perform militaryoperations to reduce risk to human pilots, or as a hobby.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. The drawings illustrate generally, by way of example, butnot by way of limitation, various embodiments discussed in the presentdocument.

FIG. 1 illustrates an example schematic of an aerial display inaccordance with some embodiments.

FIG. 2 illustrates an example schematic of an aerial display inaccordance with some embodiments.

FIG. 3 illustrates an example computing device in accordance with someembodiments.

FIG. 4 illustrates an example method in accordance with someembodiments.

FIG. 5 illustrates an example subroutine in accordance with someembodiments.

FIG. 6 illustrates an example subroutine in accordance with someembodiments.

FIG. 7 illustrates an example schematic of a drone in accordance withsome embodiments.

FIG. 8 illustrates an example method in accordance with someembodiments.

FIGS. 9A, 9B, and 9C illustrate example flightpaths in accordance withsome embodiments.

DETAILED DESCRIPTION

Drone usage is becoming more and more common as prices for dronesdecrease and the capabilities of drones increase. For example, asdisclosed herein, drones may be programmed to launch, fly a predefinedflightpath, illuminate one or more onboard light emitting diodes (LED)to create a visual image in the sky, and recover to a predeterminedlocation. All of these activities may be accomplished without userintervention. With the increased drone capabilities and decreased costs,drone usage may be implemented in a variety of entertainment, safety, oremergency scenarios.

As disclosed herein, the drones of a plurality of drones may make up anaerial display. That is, the drones may be arranged in the sky invarious fashions to form both 2D and 3D images, or frames. Because ofthe mobile nature of the plurality of drones, the frames may be animatedas the drones move about the sky and lights (e.g., Light EmittingDiodes), or other visual signals, on the drones are active. For example,various LEDs may activate or deactivate to give the appearance ofchanging colors while the plurality of drones repositions to formvarious images.

As the plurality of drones moves from a first location to a secondlocation within the sky, various considerations may be addressed. Forexample, as the plurality of drones move throughout the sky, theirflightpaths may need to be considered to avoid a midair collision. Basedon a drone's location within a frame of the aerial display, movement ofthe drones may be adjusted relative to one another so that additionalframes of the aerial display may be created in an efficient manner.

FIG. 1 illustrates an example schematic of an aerial display 100 inaccordance with some embodiments. The aerial display 100 may include afirst frame 102 and a second frame 104. The first frame 102 and thesecond frame may be comprised of a plurality of drones 106 (each dronerepresented by a dot). The number of drones in the plurality of drones106 used to create the first frame 102 may be the same as the number ofdrones used to create the second frame 104. In addition, the number ofdrones in the plurality of drones 106 used to create the first frame 102may be different than the number of drones in the plurality of drones106 used to create the second frame 104. Furthermore, a lightingconfiguration of the plurality of drones 106 may be different for thefirst frame 102 and the second frame 104. For example, in the firstframe 102, a subset of the plurality of drones 106 may be illuminated afirst color and a second subset of the plurality of drones 106 may beilluminated a second color. In the second frame 104 the first subset ofthe plurality of drones may be illuminated the second color or adifferent color and the second subset of the plurality of drones 106 maybe illuminated the first color or a different color.

As disclosed herein, a frame may be any arrangement of drones where thedrones stay substantially stationary for a preset period of time. Forexample, the plurality of drones 106 may remain stationary in the skyfor 3 seconds, thus forming a frame. The stationary aspect of a framemay be with regards to a fixed reference point. For instance, the fixedreference point may be a viewer of the frame. Stated another way, whenthe viewer views the drones and they appear stationary for the presetperiod of time, then a frame may be formed.

A frame may also be animated. For example, drones move from the firstframe 102 to the second frame 104, their movement may be viewed asanimation by the viewer. For instance, as the plurality of drones 106moves from the first frame 102 to the second frame 104, their lightingconfiguration and flight paths may form an animation as viewed by theviewer.

As shown in FIG. 1 , the first frame 102 may include the plurality ofdrones 106 spelling out the word “intel.” The second frame 104 mayinclude the plurality of drones 106 spelling out the word “drone.”During the aerial performance, the plurality of drones 106 maytransition from the first frame 102 to the second frame 104 as disclosedherein.

As disclosed herein, prior to the beginning of a presentation, theplurality of drones 106 may receive a flight profile from a computingdevice 108. The flight profile may include coordinates that identify alocation for each drone and a time that the drone needs to be at thecoordinates. Stated another way, the coordinate may be an ordered quad(e.g., (X_(i), Y_(i), Z_(i), T_(i))) that includes a latitude,longitude, altitude, and time where subscript i represents the framenumber. The flight profile may include coordinates for every frame ofthe aerial display. In addition, the flight profile also may include alighting sequence that identifies LEDs that may be illuminated to createthe various frames of the aerial display.

The flight profile may be created by the computing device 108 which maybe remote to the plurality of drones 106. In creating the flightprofile, the computing device 108 may simulate flightpaths for eachdrone to determine flight times, lighting configurations, weatherconditions, etc. to determine an efficient ordering of the plurality ofdrones 106. Once the flightpaths for each drone are determined, theflightpaths may be transmitted to the plurality of drones 106. Asdisclosed herein, the flightpaths for all of the drones in the pluralityof drones 106 may be transmitted to each drone. Stated another way, eachdrone may receive the flightpath of the other drones of the plurality ofdrones 106 within the aerial display.

FIG. 2 illustrates an example schematic of an aerial display 200 inaccordance with some embodiments. As shown in FIG. 2 , the aerialdisplay 200 may include a first frame 202 and a second frame 204. Forsimplicity, the first frame 202 and the second frame 204 each compriseeight drones, labeled 1-8.

In order to transition from the first frame 202 to the second frame 204,the flightpaths of the drones 1-8 may be determined prior to the aerialperformance. For example, after launching from a launch pad the drones1-8 may form a circular shape as shown in the first frame 202. As theaerial performance continues, the drones 1-8 may form a rectangularshape as shown in the second frame 204. As shown in a transition frame206, drones 2, 4, 6, and 8 may move in an outward direction to form thesecond frame 204. In addition, the lighting configuration for each dronemay remain constant or change as the frame changes. For example, asdrones 2, 4, 6, and 8 transition an LED on each of drones 2, 4, 6, and 8may change from a first color to a second color. In addition, during thetransition, the LED on the drones 2, 4, 6, and 8 may be deactivated sothat the movement of the drones is less noticeable to viewers.

While FIG. 2 shows a simple transition from the first frame 202 to thesecond frame 204, the transitions may be complicated. For example, asshown in FIG. 1 , the number of drones and the difference in images fromthe first frame 102 to the second frame 204 may involve the plurality ofdrones 106 moving greater distances and in close proximity to oneanother. For instance, as the plurality of drones 106 (or drones 1-8)transition from one frame to another, their flightpaths may cross. As aresult, the selection of the flightpaths and drone assignments may beadjusted to reduce the risks of midair collisions as disclosed herein.

FIG. 3 shows an example schematic of a computing device 108 inaccordance with some embodiments. The computing device 108 may beimplemented as part of the computing network or as a standalone system.As shown in FIG. 3 , the computing device 108 may include a processingunit 302 and a memory unit 304. The memory unit 304 may include asoftware module 306. While executing on the processing unit 302, thesoftware module 306 may perform processes for commanding a drone,including, for example, one or more stages included in method 400described below with respect to FIG. 4 .

The computing device 108 may include a user interface 308. The userinterface 308 may include any number of devices that allow a user tointerface with the computing device 108. Non-limiting examples of theuser interface 308 include a keypad, joystick, a display (touchscreen orotherwise), etc.

The computing device 108 may include a communications interface 310. Thecommunications interface 310 may allow the computing device 108 tocommunicate with the drones 1-8 or 106 or other computing devices.Non-limiting examples of the communications interface 310 include,automatic dependent surveillance-broadcast (ADS-B) In/Out modules,cellular modules, Ethernet cards (wireless or wired), Bluetooth®transmitters and receivers, near-field communications modules, etc.

The computing device 108 may be implemented using a personal computer, anetwork computer, a mainframe, a handheld device, a personal digitalassistant, a smartphone, or any other similar microcomputer-basedworkstation. The computing device 108 may be located in close proximityto the launch site 104 or 204. The computing device 108 may also beremote from the launch site 104 or 204. For instance, the computingdevice 108 may be located in a control room that is not in closeproximity to the launch site 104 and 204. The computing device 108 mayutilize the communications interface 310, such as a transmitter locatedproximate the launch site 104 or 204, to transmit signals and data tothe plurality of drones.

As used herein, the term “module” is understood to encompass a tangibleentity, be that an entity that is physically constructed, specificallyconfigured (e.g., hardwired), or temporarily (e.g., transitorily)configured (e.g., programmed) to operate in a specified manner or toperform at least part of any operation described herein. Consideringexamples in which modules are temporarily configured, a module need notbe instantiated at any one moment in time. For example, where themodules comprise a general-purpose hardware processor configured usingsoftware; the general-purpose hardware processor may be configured asrespective different modules at different times. Software mayaccordingly configure a hardware processor, for example, to constitute aparticular module at one instance of time and to constitute a differentmodule at a different instance of time. The term “application,” orvariants thereof, is used expansively herein to include routines,program modules, programs, components, and the like, and may beimplemented on various system configurations, including single-processoror multiprocessor systems, microprocessor-based electronics, single-coreor multi-core systems, combinations thereof, and the like. Thus, theterm application may be used to refer to an embodiment of software or tohardware arranged to perform at least part of any operation describedherein.

While a machine-readable medium may include a single medium, the term“machine-readable medium” may include a single medium or multiple media(e.g., a centralized or distributed database, and/or associated cachesand servers).

The term “machine-readable medium” may include any medium that iscapable of storing, encoding, or carrying instructions for execution bya machine (e.g., the processing unit 302 or any other module) and thatcause a machine to perform any one or more of the techniques of thepresent disclosure, or that is capable of storing, encoding or carryingdata structures used by or associated with such instructions. In otherwords, the memory unit 304 may include instructions and may therefore betermed a machine-readable medium in the context of various embodiments.Other non-limiting machine-readable medium examples may includesolid-state memories, and optical and magnetic media. Specific examplesof machine-readable media may include: non-volatile memory, such assemiconductor memory devices (e.g., Electrically Programmable Read-OnlyMemory (EPROM), Electrically Erasable Programmable Read-Only Memory(EEPROM)) and flash memory devices; magnetic disks, such as internalhard disks and removable disks; magneto-optical disks; and CD-ROM andDVD-ROM disks.

The instructions may further be transmitted or received over acommunications network using a transmission medium utilizing any one ofa number of transfer protocols (e.g., frame relay, internet protocol(IP), TCP, user datagram protocol (UDP), hypertext transfer protocol(HTTP), etc.). Example communication networks may include a local areanetwork (LAN), a wide area network (WAN), a packet data network (e.g.,the Internet), mobile telephone networks ((e.g., channel access methodsincluding Code Division Multiple Access (CDMA), Time-division multipleaccess (TDMA), Frequency-division multiple access (FDMA), and OrthogonalFrequency Division Multiple Access (OFDMA) and cellular networks such asGlobal System for Mobile Communications (GSM), Universal MobileTelecommunications System (UMTS), CDMA 2000 1×* standards and Long TermEvolution (LTE)), Plain Old Telephone (POTS) networks, and wireless datanetworks (e.g., Institute of Electrical and Electronics Engineers (IEEE)802 family of standards including IEEE 802.11 standards (WiFi), IEEE802.16 standards (WiMax®) and others), peer-to-peer (P2P) networks, orother protocols now known or later developed.

The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding or carrying instructions forexecution by hardware processing circuitry, and includes digital oranalog communications signals or other intangible medium to facilitatecommunication of such software.

FIG. 4 illustrates an example method 400 in accordance with someembodiments. The method 400 may begin at stage 402 where inputs may bereceived. The inputs may include mapping data that identifiescoordinates where a drone may be needed to form a pixel of an image, acolor for an LED, etc. The input may also include weights for variousparameters such as flight time, flight distance, collision avoidance,etc. For example, the mapping data may be in the form of a text file, orANIM file that includes a drone identifier, a latitude, a longitude, analtitude, a color, a pixel number for each frame of an aerialperformance, as well as a weighting factor for flight time andflightpath length, collision avoidance, etc.

In addition, weights for collision avoidance may be utilized as well.For example, a collision avoidance weight may range from 0 to 1. If thecollision avoidance weight is 1, then a drone may perform any maneuvernecessary to avoid a potential collision. If the collision avoidanceweight is 0, then the drone may not perform maneuvers necessary to avoida potential collision. Stated another way, the higher the collisionavoidance weight assigned to a drone, the more effort the drone will putforth to avoid a collision. The collision avoidance weights may beassigned based on an importance of a drone. For example, a drone may bevery important for a particular frame of the aerial show as a whole. Asa result, the drone may have a collision avoidance weight of 0 so as toallow the flightpath of the drone to be direct to its assigned location.If a second drone's flightpath may cross the flight of a drone with acollision avoidance weight of 0, the second drone may have a collisionavoidance weight greater than 0 so that the second drone may incorporatemaneuvers necessary to avoid a collision.

As another example, drones operating near spectators may have highcollision avoidance weights so as to avoid a potential collision nearspectators. By default, drones may be assigned a collision avoidanceweight of 0.5 such that each drone acts accordingly to avoid acollision. For example, if the flightpath of two drones cross, acollision avoidance weight of 0.5 for each drone would cause each droneto deviate in order to avoid a collision.

FIGS. 9A, 9B, and 9C illustrate example flightpaths in accordance withsome embodiments. As shown in FIG. 9A, a first drone 902A may have acollision avoidance weight of 0 and a second drone 904A may have acollision avoidance weight of 1. As shown in FIG. 9A, the second drone904A may alter its flightpath 906A to avoid the first drone 902A. Asshown in FIG. 9B, a first drone 902B and a second drone 904B may eachhave a collision avoidance weight of 0.5. As a result, a flightpath 906Bof the second drone 904B and a flightpath 908B of the first drone 902Bmay each deviate an equal amount to avoid one another. As shown in FIG.9C, a first drone 902C may have a collision avoidance weight of 0.3 anda second drone 904B may have a collision avoidance weight of 0.7. As aresult, a flightpath 906C of the second drone 904C may deviate more thana flightpath 908C of the first drone 902B to avoid one another. Statedanother way, because the second drone 904C has a larger collisionavoidance weight than the first drone 902C, the second drone 904C willcontribute more to collision avoidance than the first drone 902C.

The collision avoidance weights may also allow each of the drones tomaintain a safe distance from one another. For example, each drone maybe programmed to maintain a space (e.g., 0.3 m) from other drones. Thecollision avoidance weights may determine how much effort one droneexerts to maintain this safety radius from other drones.

From stage 402, the method 400 may proceed to subroutine 404 where amorphing sequence for each frame may be generated. For example, as shownin FIG. 2 , the morphing sequence may be for drones 2, 4, 6, and 8 tofly outwards from a center of the circular shape in the first frame 202a distance to form the rectangular shape in the second frame 204.Generation of the morphing sequence will be described in greater detailwith respect to FIG. 5 .

From subroutine 404, the method 400 may proceed to stage 406 whereflight profiles may be transmitted to each of the drones of theplurality of drones. For example, during the subroutine 404, a computingdevice may have computed flightpaths that minimize collisionprobabilities. The various flightpaths, velocities, etc. may betransmitted to each of the plurality of drones. Each of the drones ofthe plurality of drones may receive a flight profile that is specific tothat individual drone, or each of the drones of the plurality of dronesmay receive the flight profiles for every drone used in the aerial show.By having each drone aware of the flightpath of each drone, bandwidthand computational efficiency may be achieved. For instance, each dronemay have a unique identifier and each flight profile may be associatedwith one of the unique identifiers. Instead of making a transmission foreach drone, which may number into the 100s or even 1,000s, the computingdevice may make a single transmission received by each drone. Theindividual drones of the plurality of drones may utilize their uniqueidentifier to identify their particular flight profile from theplurality of flight profiles.

FIG. 5 illustrates an example subroutine 404 in accordance with someembodiments. Subroutine 404 may begin at decision block 502 where adetermination may be made as to whether automatic assignments are made.For example, a user may provide an input to signify which drones or asubset of drones may be used as part of a transition. In addition, theuser may provide an input to signify that the user will provideflightpath information for each of the drones of the plurality ofdrones. The user also may provide an input to signify that the user willnot provide flightpath information for each of the drones of theplurality of drones and the computing device may randomly assign dronesto various pixels within a frame.

If automatic assignments are not made, then subroutine 404 may proceedto stage 504 where a user may input desired assignments. For example,the user may make a one-to-one assignment between drones of a sourceframe and a target frame. The direct assignments may include specificflightpaths for plurality of drones, color assignments, airspeeds,ground speeds, or any other flight characteristic. Once the directassignments are entered, subroutine 404 may proceed to subroutine 506where a constrained simulation may be performed as described below withregards to FIG. 6 .

If automatic assignments are made, then subroutine 404 may proceed tostage 508 where a computing device (e.g., the computing device 108 ofFIG. 1 ) may automatically select a grouping of drones or subset ofdrones to form the transition and assign flightpaths, color assignments,airspeeds, ground speeds, or any other flight characteristic to theplurality of drones. Drones not needed as part of a transition mayremain static. For example, as shown in FIG. 2 , drones 2, 4, 6, and 8may be automatically selected in stage 508 for movement while drones 1,3, 5, and 7 may not be selected and may remain static during thetransition.

Furthermore, all of the drones may not be needed for a frame. Forexample, one or more drones may not be needed within a frame and thusdoes not need to relocate to transition from a first frame to a secondframe. As a result, unused drones may deactivate their light source andremain stationary during any transitions. In addition, while a secondframe is formed, drones not used in the second frame may transaction toform a third frame. For instance, the drones not used in the secondframe may deactivate their light source and reposition to locations thatmay form a third frame of the aerial show. When it is time for the thirdframe to be visible, the drones may activate their light source to formthe third frame.

Once the automatic assignments are made, subroutine 404 may proceed tosubroutine 506 where a constrained simulation may be performed. Theconstrained simulation may include simulating the morphing sequenceusing constraints such as, but not limited to, incremental time steps asdisclosed herein. After the constrained simulation is performed, thesubroutine 404 may return to method 400 at stage 510.

FIG. 6 illustrates an example subroutine 506 in accordance with someembodiments. The subroutine 506 may begin at stage 602 where flightpathsfrom the various locations within the aerial show may be projected. Forexample, the various locations of the drones within each frame may beknown as a parameter of the aerial show. As a result, the computingdevice may seek to create flightpaths that joint the various points fromeach of the individual frames. The flightpaths projected by thecomputing device may be straight lines, curved paths, or a combinationof straight segments and curved segments. For instance, when progressingfrom the word “intel” to “drone” as shown in FIG. 1 , the computingdevice may connect the locations of each drone in the first frame 102and the second frame 104. The linking of each frame may be repeated foreach transition.

From stage 602, the subroutine 506 may proceed to stage 604 wherecollision avoidance may be determined. For instance, in generating themorphing sequence the computing device may factor in the currentposition of each drone, performance of each drone, and the locations inthe next frame where plurality of drones are needed. For example, usingthe current location of each drone, the coordinates of each position adrone is needed for the next frame, and the speed of each drone, thecomputing device may calculate a flightpath for each drone to travel toeach coordinate for the next frame. Using FIG. 2 as an example, thecomputing device may calculate a flightpath and flight time for drone 1to fly to the positions of drones 2-8, drone 2 to fly to the positionsof drones 1 and 3-8, drone 3 to fly to the positions of drones 1, 2, and4-8, etc.

Once the various flightpaths and flight times have been determined asdisclosed herein, the computing device may determine if any of theflightpaths cross one another. If any of the flightpaths cross, theremay be a possibility for a collision. For example, once the flightpathof each of the drones is determined, the computing device may determineif the sequence may result in any of the flightpaths cross and given theairspeed of each drone, if the crossing flightpaths may result in acollision. The likelihood of a collision may be determined bycalculating a distance each of the drone is to an adjacent drone whenflightpaths cross.

While performing collision avoidance determinations, dynamic constraintsmay be applied in stage 606. For example, the constrained simulationsmay include factors such as current weather conditions (e.g., windspeed, density altitude, temperature, pressure, etc.), drone airspeed(true airspeed or groundspeed), etc. For example, with a high-densityaltitude drone performance may be diminished. As a result, the airspeedof the drones may provide a time constraint. Stated another way, becauseof reduced airspeeds associated with high density altitudes, thedistance a drone may travel within a given time may be reduced.

The constrained simulation may include stepping each drone along itsflightpath in increments of time. For example, the time between framesmay be 2 seconds. The constrained simulation may use the projectedflightpaths and drone velocities to project a position of the drone atsmall increments of time (e.g., 0.1 seconds). As a result, the computingdevice may estimate the position of each drone in between frames todetermine if any two drone would collide. Also, as part of thesimulations, the velocity of the drones may be varied. For example, adrone may travel at a maximum velocity for a first part of a flightpathand at a second velocity for a second part of the flightpath. The changein velocity may be needed to avoid collisions along the flightpath andfor dynamic effect during a transition from the first frame to thesecond frame.

Once the dynamic constraints are applied, the frames may be stored asindicated in stage 608. From stage 608, determinations may be made as towhether each of the drones is able to reach a desired target asindicated by decision block 610. Thus, simulations may determine ifdrones are able to reach a target location (a pixel location within aframe) within a preset time without any collisions. If the drones areable to reach desired targets without any collisions, the subroutine 506may return to subroutine 510. If the drones are not able to reach adesired target in time or a collision may occur, then the subroutinereturns to stage 602 where adjusted flightpaths may be projected andtested for collision avoidance as disclosed herein.

During method 400 and subroutines 404 and 506, if the distance betweendrones is unacceptable (e.g., any two drones are too close to oneanother), then the morphing sequences may be regenerated. Anunacceptable distance or any two drones being too close to one anothermay mean that the distance between any two drones is less than aprescribed distance. The prescribed distance may be a fixed distance(e.g., 1 meter) or a function of the drone's ability to determine itslocation. For instance, if each of the drones has the ability todetermine its position with a given precision (e.g., within 0.2 meters),then the prescribed distance may be twice the precision (e.g., 0.4meters). The regeneration of the morphing sequence may take intoconsideration any past generated morphing sequences to avoidregenerating a previously generated morphing sequence.

By applying the weights to minimize various parameters to arrive of asequence for each of the drones, the computing device may createmorphing sequences that appear to move. For example, the computingdevice may minimize the flight time or flight distance for each of thedrones. The minimization process may be achieved by simulating eachdrone flying the various flightpaths in differing arrangements todetermine which arrangement results in the shortest overall distanceflown for the drones or the shortest overall flight time to form thevarious frames of the aerial performance.

The morphing sequence may also be created via direct assignments. Forinstance, the drones may be assigned a location for each frame. Theassignment may be random or follow a structured algorithm. For example,the computing device may assign a location in the next frame to a dronebase on the drone being the closest drone to that location. This directassignment may occur before the aerial performance and transmitted tothe drones as disclosed herein.

Generating the morphing sequence may also include reassigning pixelnumbers. For example, each drone may be identified by an ID thatcorresponds to a pixel within a frame. In order to optimize droneflightpaths, the pixel number associate with a drone may change duringthe aerial performance. By allowing pixel numbers to change, distancesflown may be reduced.

Furthermore, the morphing from one frame to another may incorporate aflocking behavior. Stated another way, as the drones transition from oneframe to another, the drones may move in a coordinated manner to appearmore fluid and lifelike. Generally, the shortest distance and easiestflightpaths between locations within the frames may be a straight line.However, due to GPS errors, flight dynamics of each of the drones, etc.the flightpaths may need to be altered to give a more fluid like move,while still avoiding midair collisions.

In generating the morphing sequences, one or more of the stages andsubroutines disclosed herein may be performed in parallel with oneanother. For example, the dynamic constraints discussed regarding stage606 may be applied while collision avoidance is being determined.

FIG. 7 shows an example schematic of the drone 700, such as one ofdrones 1-8 or 106. As shown in FIG. 7 , the drone 700 may include anairframe 702, a flight mechanism 704, and computing environment 706. Theairframe 702 may be made of made of polymers, metals, etc. and the othercomponents of the drone 700 may be secured to the airframe 702.

The flight mechanism 704 may include mechanisms that may propel thedrone 700 through the air. For example, the flight mechanism 704 mayinclude propellers, rotors, turbofans, turboprops, etc. The flightmechanism 704 may operably interface with avionics 708. The avionics 708may be part of the computing environment 706 (as shown in FIG. 7 ) orstandalone components. For example, the avionics 708 may includeaccelerometers 710, an altimeter 712, gyroscopes 714, and a GPS receiver716.

The various components of the avionics 708 may be standalone componentsor may be part of an autopilot system or other avionics package. Forexample, the altimeter 712 and GPS receiver 716 may be part of anautopilot system that includes one or more axes of control. Forinstance, the autopilot system may be a two-axis autopilot that maymaintain a preset course and hold a preset altitude. The avionics 708may be used to control in-flight orientation of the drone 700. Forexample, the avionics 708 may be used to control orientation of thedrone 700 about pitch, bank, and yaw axes while in flight.

The avionics 708 may allow for autonomous flight. For example, asdescribed herein, the drone 700 may receive a flightpath that the drone700 may fly without further user input. In addition, the avionics 708may include a navigation transmitter 730 that may be used to transmitcommands to the flight mechanism 704. While FIG. 7 shows the navigationtransmitter 730 as part of the avionics 708, the navigation transmitter730 may be software stored in a memory 718 as shown by dashed navigationtransmitter 730.

The computing environment 706 may also include the memory 718 that maystore applications 720 and a drone operating system (OS) 722. Theapplications 720 may include lighting controls for controlling one ormore LEDs 750. The applications 720 may include a communications programthat may allow drone 700 to communicate with the computing device. Inaddition, the applications 720 may include software that functions asthe navigation transmitter 730.

The memory 718 may provide a secure area for storage of components usedto authenticate communications between the drone 700 and the computingdevice. For example, the memory 718 may store SSL certificates or othersecurity tokens. The data stored in the memory 718 may be read-only datasuch that during operation the data cannot be corrupted or otherwisealtered by malware, viruses, or by other users that may try and takecontrol of the drone 700.

The computing environment 706 may include a central processing unit(CPU) 724, a battery 726, and a communications interface 728. The CPU724 may be used to execute operations and method steps, such as thosedescribed herein with regard to FIGS. 5 and 7 . The memory 718 also maystore data received by the drone 700 as well as programs and othersoftware utilized by the drone 700. For example, the memory 718 maystore instructions that, when executed by the CPU 724, cause the CPU 724to perform operations such as those described herein.

The communications interface 728 may include transmitters, receivers, ortransceivers that may be used to communicate with the computing device.For example, the communications interface 728 may include an automaticdependent surveillance-broadcast (ADS-B) receiver (ADS-B In) ortransmitter (ADS-B Out) that may send and receive data. In addition, thecommunications interface 728 may include a cellular interface or otherwireless credential exchange modules. For example, the communicationsinterface 728 may include an ADS-B In-and-Out module that allows thedrone 700 to transmits its position to the computing device and alsoallow the drone 700 to receive the flightpaths and other data from thecomputing device.

While FIG. 7 shows various components of the drone 700, not allcomponents shown in FIG. 7 are required. For example, drone 700 may nothave the gyroscopes 714, the altimeter 712, etc.

FIG. 8 illustrates an example method 800 in accordance with someembodiments disclosed herein. The method 800 may begin at stage 802where a drone may receive a flight profile. As disclosed herein, thedrone may receive a flight profile that defines a flightpath for thedrone or the drone may receive a flight profile that defines flightpathsfor each drone in an aerial show and select an appropriate flightpathfrom the flightpaths.

From stage 802, the method 800 may proceed to stage 804, where the dronemay fly the flightpath. For example, if the drone receives a singleflightpath the drone may fly the flightpath. If the drone receives allof the flightpaths for each of the drones may fly the flightpath thatcorresponds with drone. Flying the flightpath may include transmittingan activation signal from a CPU to a flight mechanism.

Flying the flightpath may also include the drone collecting data fromits surroundings and using the data to adjust its flightcharacteristics. For example, a drone may utilize a GPS receiver todetermine a direction of flight and a ground speed. Using the groundspeed, the drone may determine a velocity that will allow the drone toarrive at a position to form a frame. For example, if a drone is flyinginto a headwind, the CPU may increase power to the flight mechanism toincrease the airspeed, and thus groundspeed, of the drone so that thedrone arrives at the desired location. In addition, if the drone isflying with a tailwind, the CPU may decrease power to the flightmechanism to slow the drone so that the drone does not reach the desiredlocation too soon. Stated another way, the drones are able to determinetheir ground speed and adjust their airspeed such that the groundspeedmatches the desired velocity in the flight profile received by thedrones.

EXAMPLES

Example 1 is a method for generating a morphing sequence for an aerialshow, the method comprising: receiving, at a computing device comprisinga processor, first frame data defining a first location for each of aplurality of drones in a first image of the aerial show; receiving, atthe computing device, second frame data defining a second location foreach of the plurality of drones in a second image of the aerial show;and generating, by the computing device, the morphing sequence, themorphing sequence defining a flightpath for each of the plurality ofdrones to transition from the first location associated with the firstimage to the second location associate with the second image.

In Example 2, the subject matter of Example 1 optionally includeswherein generating the morphing sequence includes minimizing a flighttime for each of the plurality of drones.

In Example 3, the subject matter of any one or more of Examples 1-2optionally include wherein generating the morphing sequence includesminimizing an overall flight time for the plurality of drones.

In Example 4, the subject matter of any one or more of Examples 1-3optionally include wherein generating the morphing sequence includesapplying a collision avoidance weight to each of the plurality ofdrones.

In Example 5, the subject matter of Example 4 optionally includeswherein the collision avoidance weight is equal for each of theplurality of drones.

In Example 6, the subject matter of any one or more of Examples 4-5optionally include wherein the collision avoidance weight is greater fora first subset of the plurality of drones than for a second subset ofthe plurality of drones.

In Example 7, the subject matter of Example 6 optionally includeswherein the second subset of drones are active in forming the secondimage and the first subset of drones are not active in forming thesecond image.

In Example 8, the subject matter of any one or more of Examples 1-7optionally include wherein generating the morphing sequence includesdetermining a velocity for each of the plurality of drones to transitionfrom the first location to the second location.

In Example 9, the subject matter of any one or more of Examples 1-8optionally include simulating the morphing sequence.

In Example 10, the subject matter of Example 9 optionally includeswherein simulating the morphing sequence includes stepping each of theplurality of drones from the first location to the second location inpredefined increments of time.

In Example 11, the subject matter of any one or more of Examples 1-10optionally include wherein during the morphing sequence a first subsetof the plurality of drones are in a lighted state and a second subset ofdrones are in an unlighted state.

In Example 12, the subject matter of any one or more of Examples 1-11optionally include transmitting the flightpath for each of the pluralityof drones to each of the plurality of drones.

Example 13 is at least one computer-readable medium comprisinginstructions to perform any of the methods of Examples 1-12.

Example 14 is an apparatus comprising means for performing any of themethods of Examples 1-12.

Example 15 is a system for generating a morphing sequence for an aerialshow, the system comprising: a processor; and a memory includinginstructions that, when executed by the processor, cause the processorto: receive first frame data defining a first location for each of aplurality of drones in a first image of the aerial show; receive secondframe data defining a second location for each of the plurality ofdrones in a second image of the aerial show; and generate the morphingsequence defining a flightpath for each of the plurality of drones totransition from the first location associated with the first image tothe second location associate with the second image.

In Example 16, the subject matter of Example 15 optionally includeswherein generating the morphing sequence includes instructions that,when executed by the processor, cause the processor to minimize a flighttime for each of the plurality of drones.

In Example 17, the subject matter of any one or more of Examples 15-16optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto minimize an overall flight time for the plurality of drones.

In Example 18, the subject matter of any one or more of Examples 15-17optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto apply a collision avoidance weight to each of the plurality ofdrones.

In Example 19, the subject matter of Example 18 optionally includeswherein the collision avoidance weight is equal for each of theplurality of drones.

In Example 20, the subject matter of any one or more of Examples 18-19optionally include wherein the collision avoidance weight is greater fora first subset of the plurality of drones than for a second subset ofthe plurality of drones.

In Example 21, the subject matter of Example 20 optionally includeswherein the second subset of drones are active in forming the secondimage and the first subset of drones are not active in forming thesecond image.

In Example 22, the subject matter of any one or more of Examples 15-21optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto determine a velocity for each of the plurality of drones totransition from the first location to the second location.

In Example 23, the subject matter of any one or more of Examples 15-22optionally include instructions that, when executed by the processor,cause the processor to simulate the morphing sequence.

In Example 24, the subject matter of Example 23 optionally includeswherein simulating the morphing sequence includes instructions that,when executed by the processor, cause the processor to step each of theplurality of drones from the first location to the second location inpredefined increments of time.

In Example 25, the subject matter of any one or more of Examples 15-24optionally include wherein during the morphing sequence a first subsetof the plurality of drones are in a lighted state and a second subset ofdrones are in an unlighted state.

In Example 26, the subject matter of any one or more of Examples 15-25optionally include instructions that, when executed by the processor,cause the processor to transmit the flightpath for each of the pluralityof drones to each of the plurality of drones.

Example 27 is a system for generating a morphing sequence for an aerialshow, the system comprising: means for receiving first frame datadefining a first location for each of a plurality of drones in a firstimage of the aerial show; means for receiving, at the computing device,second frame data defining a second location for each of the pluralityof drones in a second image of the aerial show; and means for generatingthe morphing sequence, the morphing sequence defining a flightpath foreach of the plurality of drones to transition from the first locationassociated with the first image to the second location associate withthe second image.

In Example 28, the subject matter of Example 27 optionally includeswherein the means for generating the morphing sequence includes meansfor minimizing a flight time for each of the plurality of drones.

In Example 29, the subject matter of any one or more of Examples 27-28optionally include wherein the means for generating the morphingsequence includes means for minimizing an overall flight time for theplurality of drones.

In Example 30, the subject matter of any one or more of Examples 27-29optionally include wherein the means for generating the morphingsequence includes means for applying a collision avoidance weight toeach of the plurality of drones.

In Example 31, the subject matter of Example 30 optionally includeswherein the collision avoidance weight is equal for each of theplurality of drones.

In Example 32, the subject matter of any one or more of Examples 30-31optionally include wherein the collision avoidance weight is greater fora first subset of the plurality of drones than for a second subset ofthe plurality of drones.

In Example 33, the subject matter of Example 32 optionally includeswherein the second subset of drones are active in forming the secondimage and the first subset of drones are not active in forming thesecond image.

In Example 34, the subject matter of any one or more of Examples 27-33optionally include wherein the means for generating the morphingsequence includes means for determining a velocity for each of theplurality of drones to transition from the first location to the secondlocation.

In Example 35, the subject matter of any one or more of Examples 27-34optionally include means for simulating the morphing sequence.

In Example 36, the subject matter of Example 35 optionally includeswherein the means for simulating the morphing sequence includes meansfor stepping each of the plurality of drones from the first location tothe second location in predefined increments of time.

In Example 37, the subject matter of Example undefined optionallyincludes, wherein during the morphing sequence a first subset of theplurality of drones are in a lighted state and a second subset of dronesare in an unlighted state.

In Example 38, the subject matter of any one or more of Examples 27-37optionally include means for transmitting the flightpath for each of theplurality of drones to each of the plurality of drones.

Example 39 is at least one computer readable medium includinginstructions that, when executed by a processor, cause the processor to:receive first frame data defining a first location for each of aplurality of drones in a first image of an aerial show; receive secondframe data defining a second location for each of the plurality ofdrones in a second image of the aerial show; and generate the morphingsequence defining a flightpath for each of the plurality of drones totransition from the first location associated with the first image tothe second location associate with the second image.

In Example 40, the subject matter of Example 39 optionally includeswherein generating the morphing sequence includes instructions that,when executed by the processor, cause the processor to minimize a flighttime for each of the plurality of drones.

In Example 41, the subject matter of any one or more of Examples 39-40optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto minimize an overall flight time for the plurality of drones.

In Example 42, the subject matter of any one or more of Examples 39-41optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto apply a collision avoidance weight to each of the plurality ofdrones.

In Example 43, the subject matter of Example 42 optionally includeswherein the collision avoidance weight is equal for each of theplurality of drones.

In Example 44, the subject matter of any one or more of Examples 42-43optionally include wherein the collision avoidance weight is greater fora first subset of the plurality of drones than for a second subset ofthe plurality of drones.

In Example 45, the subject matter of Example 44 optionally includeswherein the second subset of drones are active in forming the secondimage and the first subset of drones are not active in forming thesecond image.

In Example 46, the subject matter of any one or more of Examples 39-45optionally include wherein generating the morphing sequence includesinstructions that, when executed by the processor, cause the processorto determine a velocity for each of the plurality of drones totransition from the first location to the second location.

In Example 47, the subject matter of any one or more of Examples 39-46optionally include instructions that, when executed by the processor,cause the processor to simulate the morphing sequence.

In Example 48, the subject matter of Example 47 optionally includeswherein simulating the morphing sequence includes instructions that,when executed by the processor, cause the processor to step each of theplurality of drones from the first location to the second location inpredefined increments of time.

In Example 49, the subject matter of any one or more of Examples 39-48optionally include wherein during the morphing sequence a first subsetof the plurality of drones are in a lighted state and a second subset ofdrones are in an unlighted state.

In Example 50, the subject matter of any one or more of Examples 39-49optionally include instructions that, when executed by the processor,cause the processor to transmit the flightpath for each of the pluralityof drones to each of the plurality of drones.

Example 51 is a drone comprising: a flight mechanism; a processor inelectrical communication with the flight mechanism; and a memory storinginstructions that, when executed by the processor, cause the processorto: receive a flight plan from a remote computer, the flight plandefining a flightpath and a velocity for each of a plurality of dronesto transition from a first location in a first image of an aerialdisplay to a second location in a second image of the aerial display,and transmit an activation signal to the flight mechanism, theactivation signal transmitted in accordance with the flight plan, theactivation signal including instructions that cause the drone to fly theflightpath and at the velocity specified in the flight plane for thedrone.

In Example 52, the subject matter of Example 51 optionally includes aposition sensor, wherein the instructions, when executed by theprocessor, further cause the processor to: determine a velocity of thedrone during flight; transmit a first signal to the flight mechanism toincrease power to the flight mechanism when the velocity of the droneduring flight is less than a preset velocity defined by the flightplane; and transmit a second signal to the flight mechanism to decreasepower to the flight mechanism when the velocity of the drone duringflight is greater than the preset velocity defined by the flight plan.

In Example 53, the subject matter of any one or more of Examples 51-52optionally include wherein the flight plan further defines a lightingconfiguration for each of the plurality of drones.

In Example 54, the subject matter of Example 53 optionally includes alight source, wherein the instructions, when executed by the processor,further cause the processor to activate the light source in accordancewith the lighting configuration.

In Example 55, the subject matter of any one or more of Examples 53-54optionally include a light source, wherein the instructions, whenexecuted by the processor, further cause the processor to deactivate thelight source in accordance with the lighting configuration.

Example 56 is a method of sequencing a drone from a first image of anaerial display to a second image of the aerial display, the methodcomprising: receiving, at the drone from a remote computer, a flightplane, the flight plan defining a flightpath and a velocity for each ofa plurality of drones to transition from a first location in a firstimage of an aerial display to a second location in a second image of theaerial display, and transmitting an activation signal to a flightmechanism of the drone, the activation signal transmitted in accordancewith the flight plan, the activation signal including instructions thatcause the drone to fly the flightpath and at the velocity specified inthe flight plane for the drone.

In Example 57, the subject matter of Example 56 optionally includesdetermining a velocity of the drone during flight; transmitting a firstsignal to the flight mechanism to increase power to the flight mechanismwhen the velocity of the drone during flight is less than a presetvelocity defined by the flight plane; and transmitting a second signalto the flight mechanism to decrease power to the flight mechanism whenthe velocity of the drone during flight is greater than the presetvelocity defined by the flight plan.

In Example 58, the subject matter of any one or more of Examples 56-57optionally include wherein the flight plan further defines a lightingconfiguration for each of the plurality of drones.

In Example 59, the subject matter of Example 58 optionally includesactivating a light source of the drone in accordance with the lightingconfiguration.

In Example 60, the subject matter of any one or more of Examples 58-59optionally include deactivating a light source of the drone inaccordance with the lighting configuration.

Example 61 is at least one computer-readable medium comprisinginstructions to perform any of the methods of Examples 56-60.

Example 62 is an apparatus comprising means for performing any of themethods of Examples 56-60.

Example 63 is a drone comprising: means for propelling the drone throughthe air; means for receiving, from a remote computer, a flight plane,the flight plan defining a flightpath and a velocity for each of aplurality of drones to transition from a first location in a first imageof an aerial display to a second location in a second image of theaerial display, and means for transmitting an activation signal to thepropelling means, the activation signal transmitted in accordance withthe flight plan, the activation signal including instructions that causethe drone to fly the flightpath and at the velocity specified in theflight plane for the drone.

In Example 64, the subject matter of Example 63 optionally includesmeans for determining a velocity of the drone during flight; means fortransmitting a first signal to the propelling means to increase power tothe propelling means when the velocity of the drone during flight isless than a preset velocity defined by the flight plane; andtransmitting a second signal to the propelling means to decrease powerto the propelling means when the velocity of the drone during flight isgreater than the preset velocity defined by the flight plan.

In Example 65, the subject matter of any one or more of Examples 63-64optionally include wherein the flight plan further defines a lightingconfiguration for each of the plurality of drones.

In Example 66, the subject matter of Example 65 optionally includesmeans for illuminating a portion of the drone in accordance with thelighting configuration.

In Example 67, the subject matter of any one or more of Examples 65-66optionally include means for de-illuminating a portion of the drone inaccordance with the lighting configuration.

Example 68 is at least one computer readable medium includinginstructions that, when executed by a processor, cause the processor to:receive, at a drone from a remote computer, a flight plane, the flightplan defining a flightpath and a velocity for each of a plurality ofdrones to transition from a first location in a first image of an aerialdisplay to a second location in a second image of the aerial display,and transmit an activation signal to a flight mechanism of the drone,the activation signal transmitted in accordance with the flight plan,the activation signal including instructions that cause the drone to flythe flightpath and at the velocity specified in the flight plane for thedrone.

In Example 69, the subject matter of Example 68 optionally includesinstructions that, when executed by the processor, cause the processorto: determine a velocity of the drone during flight; transmit a firstsignal to the flight mechanism to increase power to the flight mechanismwhen the velocity of the drone during flight is less than a presetvelocity defined by the flight plane; and transmit a second signal tothe flight mechanism to decrease power to the flight mechanism when thevelocity of the drone during flight is greater than the preset velocitydefined by the flight plan.

In Example 70, the subject matter of any one or more of Examples 68-69optionally include wherein the flight plan further defines a lightingconfiguration for each of the plurality of drones.

In Example 71, the subject matter of Example 70 optionally includesinstructions that, when executed by the processor, cause the processorto activate a light source of the drone in accordance with the lightingconfiguration.

In Example 72, the subject matter of any one or more of Examples 70-71optionally include instructions that, when executed by the processor,cause the processor to deactivate a light source of the drone inaccordance with the lighting configuration.

Example 73 is at least one machine-readable medium includinginstructions that, when executed by processing circuitry, cause theprocessing circuitry to perform operations to implement of any ofExamples 1-72.

Example 74 is an apparatus comprising means to implement of any ofExamples 1-72.

Example 75 is a system to implement of any of Examples 1-72.

Example 76 is a method to implement of any of Examples 1-72.

The above detailed description includes references to the accompanyingdrawings, which form a part of the detailed description. The drawingsshow, by way of illustration, specific embodiments that may bepracticed. These embodiments are also referred to herein as “examples.”Such examples may include elements in addition to those shown ordescribed. However, also contemplated are examples that include theelements shown or described. Moreover, also contemplate are examplesusing any combination or permutation of those elements shown ordescribed (or one or more aspects thereof), either with respect to aparticular example (or one or more aspects thereof), or with respect toother examples (or one or more aspects thereof) shown or describedherein.

Publications, patents, and patent documents referred to in this documentare incorporated by reference herein in their entirety, as thoughindividually incorporated by reference. In the event of inconsistentusages between this document and those documents so incorporated byreference, the usage in the incorporated reference(s) are supplementaryto that of this document; for irreconcilable inconsistencies, the usagein this document controls.

In this document, the terms “a” or “an” are used, as is common in patentdocuments, to include one or more than one, independent of any otherinstances or usages of “at least one” or “one or more.” In thisdocument, the term “or” is used to refer to a nonexclusive or, such that“A or B” includes “A but not B,” “B but not A,” and “A and B,” unlessotherwise indicated. In the appended claims, the terms “including” and“in which” are used as the plain-English equivalents of the respectiveterms “comprising” and “wherein.” Also, in the following claims, theterms “including” and “comprising” are open-ended, that is, a system,device, article, or process that includes elements in addition to thoselisted after such a term in a claim are still deemed to fall within thescope of that claim. Moreover, in the following claims, the terms“first,” “second,” and “third,” etc. are used merely as labels, and arenot intended to suggest a numerical order for their objects.

The above description is intended to be illustrative, and notrestrictive. For example, the above-described examples (or one or moreaspects thereof) may be used in combination with others. Otherembodiments may be used, such as by one of ordinary skill in the artupon reviewing the above description. The Abstract is to allow thereader to quickly ascertain the nature of the technical disclosure andis submitted with the understanding that it will not be used tointerpret or limit the scope or meaning of the claims. Also, in theabove Detailed Description, various features may be grouped together tostreamline the disclosure. However, the claims may not set forthfeatures disclosed herein because embodiments may include a subset ofsaid features. Further, embodiments may include fewer features thanthose disclosed in a particular example. Thus, the following claims arehereby incorporated into the Detailed Description, with a claim standingon its own as a separate embodiment. The scope of the embodimentsdisclosed herein is to be determined with reference to the appendedclaims, along with the full scope of equivalents to which such claimsare entitled. Claimed is:

1. A method for generating a morphing sequence for an aerial show, themethod comprising: receiving, at a computing device comprising aprocessor, first frame data defining a first location for each of aplurality of drones in a first image of the aerial show; receiving, atthe computing device, second frame data defining a second location foreach of the plurality of drones in a second image of the aerial show;and generating, by the computing device, the morphing sequence, themorphing sequence defining a flightpath for each of the plurality ofdrones to transition from the first location associated with the firstimage to the second location associate with the second image.